package gocloakimport ()// GetQueryParams converts the struct to map[string]string// The fields tags must have `json:"<name>,string,omitempty"` format for all types, except strings// The string fields must have: `json:"<name>,omitempty"`. The `json:"<name>,string,omitempty"` tag for string field// will add additional double quotes.// "string" tag allows to convert the non-string fields of a structure to map[string]string.// "omitempty" allows to skip the fields with default values.func ( interface{}) (map[string]string, error) {// if obj, ok := s.(GetGroupsParams); ok { // obj.OnMarshal() // s = obj // } , := json.Marshal()if != nil {returnnil, }varmap[string]string = json.Unmarshal(, &)if != nil {returnnil, }return , nil}// StringOrArray represents a value that can either be a string or an array of stringstypeStringOrArray []string// UnmarshalJSON unmarshals a string or an array object from a JSON array or a JSON stringfunc ( *StringOrArray) ( []byte) error {iflen() > 1 && [0] == '[' {var []stringif := json.Unmarshal(, &); != nil {return } * = StringOrArray()returnnil }varstringif := json.Unmarshal(, &); != nil {return } * = StringOrArray([]string{})returnnil}// MarshalJSON converts the array of strings to a JSON array or JSON string if there is only one item in the arrayfunc ( *StringOrArray) () ([]byte, error) {iflen(*) == 1 {returnjson.Marshal([]string(*)[0]) }returnjson.Marshal([]string(*))}// EnforcedString can be used when the expected value is string but Keycloak in some cases gives you mixed typestypeEnforcedStringstring// UnmarshalJSON modify data as string before json unmarshalfunc ( *EnforcedString) ( []byte) error {if [0] != '"' {// Escape unescaped quotes = bytes.ReplaceAll(, []byte(`"`), []byte(`\"`)) = bytes.ReplaceAll(, []byte(`\\"`), []byte(`\"`))// Wrap data in quotes = append([]byte(`"`), ...) = append(, []byte(`"`)...) }varstring := json.Unmarshal(, &) * = EnforcedString()return}// MarshalJSON return json marshalfunc ( *EnforcedString) () ([]byte, error) {returnjson.Marshal(*)}// APIErrType is a field containing more specific API error types// that may be checked by the receiver.typeAPIErrTypestringconst (// APIErrTypeUnknown is for API errors that are not strongly // typed.APIErrTypeUnknownAPIErrType = "unknown"// APIErrTypeInvalidGrant corresponds with Keycloak's // OAuthErrorException due to "invalid_grant".APIErrTypeInvalidGrant = "oauth: invalid grant")// ParseAPIErrType is a convenience method for returning strongly// typed API errors.func ( error) APIErrType {if == nil {returnAPIErrTypeUnknown }switch {casestrings.Contains(.Error(), "invalid_grant"):returnAPIErrTypeInvalidGrantdefault:returnAPIErrTypeUnknown }}// APIError holds message and statusCode for api errorstypeAPIErrorstruct { Code int`json:"code"` Message string`json:"message"` Type APIErrType`json:"type"`}// Error stringifies the APIErrorfunc ( APIError) () string {return .Message}// CertResponseKey is returned by the certs endpoint.// JSON Web Key structure is described here:// https://self-issued.info/docs/draft-ietf-jose-json-web-key.html#JWKContentstypeCertResponseKeystruct { Kid *string`json:"kid,omitempty"` Kty *string`json:"kty,omitempty"` Alg *string`json:"alg,omitempty"` Use *string`json:"use,omitempty"` N *string`json:"n,omitempty"` E *string`json:"e,omitempty"` X *string`json:"x,omitempty"` Y *string`json:"y,omitempty"` Crv *string`json:"crv,omitempty"` KeyOps *[]string`json:"key_ops,omitempty"` X5u *string`json:"x5u,omitempty"` X5c *[]string`json:"x5c,omitempty"` X5t *string`json:"x5t,omitempty"` X5tS256 *string`json:"x5t#S256,omitempty"`}// CertResponse is returned by the certs endpointtypeCertResponsestruct { Keys *[]CertResponseKey`json:"keys,omitempty"`}// IssuerResponse is returned by the issuer endpointtypeIssuerResponsestruct { Realm *string`json:"realm,omitempty"` PublicKey *string`json:"public_key,omitempty"` TokenService *string`json:"token-service,omitempty"` AccountService *string`json:"account-service,omitempty"` TokensNotBefore *int`json:"tokens-not-before,omitempty"`}// ResourcePermission represents a permission granted to a resourcetypeResourcePermissionstruct { RSID *string`json:"rsid,omitempty"` ResourceID *string`json:"resource_id,omitempty"` RSName *string`json:"rsname,omitempty"` Scopes *[]string`json:"scopes,omitempty"` ResourceScopes *[]string`json:"resource_scopes,omitempty"`}// PermissionResource represents a resources asscoiated with a permissiontypePermissionResourcestruct { ResourceID *string`json:"_id,omitempty"` ResourceName *string`json:"name,omitempty"`}// PermissionScope represents scopes associated with a permissiontypePermissionScopestruct { ScopeID *string`json:"id,omitempty"` ScopeName *string`json:"name,omitempty"`}// IntroSpectTokenResult is returned when a token was checkedtypeIntroSpectTokenResultstruct { Permissions *[]ResourcePermission`json:"permissions,omitempty"` Exp *int`json:"exp,omitempty"` Nbf *int`json:"nbf,omitempty"` Iat *int`json:"iat,omitempty"` Aud *StringOrArray`json:"aud,omitempty"` Active *bool`json:"active,omitempty"` AuthTime *int`json:"auth_time,omitempty"` Jti *string`json:"jti,omitempty"` Type *string`json:"typ,omitempty"`}// User represents the Keycloak User StructuretypeUserstruct { ID *string`json:"id,omitempty"` CreatedTimestamp *int64`json:"createdTimestamp,omitempty"` Username *string`json:"username,omitempty"` Enabled *bool`json:"enabled,omitempty"` Totp *bool`json:"totp,omitempty"` EmailVerified *bool`json:"emailVerified,omitempty"` FirstName *string`json:"firstName,omitempty"` LastName *string`json:"lastName,omitempty"` Email *string`json:"email,omitempty"` FederationLink *string`json:"federationLink,omitempty"` Attributes *map[string][]string`json:"attributes,omitempty"` DisableableCredentialTypes *[]interface{} `json:"disableableCredentialTypes,omitempty"` RequiredActions *[]string`json:"requiredActions,omitempty"` Access *map[string]bool`json:"access,omitempty"` ClientRoles *map[string][]string`json:"clientRoles,omitempty"` RealmRoles *[]string`json:"realmRoles,omitempty"` Groups *[]string`json:"groups,omitempty"` ServiceAccountClientID *string`json:"serviceAccountClientId,omitempty"` Credentials *[]CredentialRepresentation`json:"credentials,omitempty"`}// SetPasswordRequest sets a new passwordtypeSetPasswordRequeststruct { Type *string`json:"type,omitempty"` Temporary *bool`json:"temporary,omitempty"` Password *string`json:"value,omitempty"`}// Component is a componenttypeComponentstruct { ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` ProviderID *string`json:"providerId,omitempty"` ProviderType *string`json:"providerType,omitempty"` ParentID *string`json:"parentId,omitempty"` ComponentConfig *map[string][]string`json:"config,omitempty"` SubType *string`json:"subType,omitempty"`}// KeyStoreConfig holds the keyStoreConfigtypeKeyStoreConfigstruct { ActiveKeys *ActiveKeys`json:"active,omitempty"` Key *[]Key`json:"keys,omitempty"`}// ActiveKeys holds the active keystypeActiveKeysstruct { HS256 *string`json:"HS256,omitempty"` RS256 *string`json:"RS256,omitempty"` AES *string`json:"AES,omitempty"`}// Key is a keytypeKeystruct { ProviderID *string`json:"providerId,omitempty"` ProviderPriority *int`json:"providerPriority,omitempty"` Kid *string`json:"kid,omitempty"` Status *string`json:"status,omitempty"` Type *string`json:"type,omitempty"` Algorithm *string`json:"algorithm,omitempty"` PublicKey *string`json:"publicKey,omitempty"` Certificate *string`json:"certificate,omitempty"`}// Attributes holds AttributestypeAttributesstruct { LDAPENTRYDN *[]string`json:"LDAP_ENTRY_DN,omitempty"` LDAPID *[]string`json:"LDAP_ID,omitempty"`}// Access represents accesstypeAccessstruct { ManageGroupMembership *bool`json:"manageGroupMembership,omitempty"` View *bool`json:"view,omitempty"` MapRoles *bool`json:"mapRoles,omitempty"` Impersonate *bool`json:"impersonate,omitempty"` Manage *bool`json:"manage,omitempty"`}// UserGroup is a UserGrouptypeUserGroupstruct { ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` Path *string`json:"path,omitempty"`}// GetUsersParams represents the optional parameters for getting userstypeGetUsersParamsstruct { BriefRepresentation *bool`json:"briefRepresentation,string,omitempty"` Email *string`json:"email,omitempty"` EmailVerified *bool`json:"emailVerified,string,omitempty"` Enabled *bool`json:"enabled,string,omitempty"` Exact *bool`json:"exact,string,omitempty"` First *int`json:"first,string,omitempty"` FirstName *string`json:"firstName,omitempty"` IDPAlias *string`json:"idpAlias,omitempty"` IDPUserID *string`json:"idpUserId,omitempty"` LastName *string`json:"lastName,omitempty"` Max *int`json:"max,string,omitempty"` Q *string`json:"q,omitempty"` Search *string`json:"search,omitempty"` Username *string`json:"username,omitempty"`}// GetComponentsParams represents the optional parameters for getting componentstypeGetComponentsParamsstruct { Name *string`json:"name,omitempty"` ProviderType *string`json:"provider,omitempty"` ParentID *string`json:"parent,omitempty"`}// ExecuteActionsEmail represents parameters for executing action emailstypeExecuteActionsEmailstruct { UserID *string`json:"-"` ClientID *string`json:"client_id,omitempty"` Lifespan *int`json:"lifespan,string,omitempty"` RedirectURI *string`json:"redirect_uri,omitempty"` Actions *[]string`json:"-"`}// SendVerificationMailParams is being used to send verification paramstypeSendVerificationMailParamsstruct { ClientID *string RedirectURI *string}// Group is a GrouptypeGroupstruct { ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` Path *string`json:"path,omitempty"` SubGroups *[]Group`json:"subGroups,omitempty"` Attributes *map[string][]string`json:"attributes,omitempty"` Access *map[string]bool`json:"access,omitempty"` ClientRoles *map[string][]string`json:"clientRoles,omitempty"` RealmRoles *[]string`json:"realmRoles,omitempty"`}// GroupsCount represents the groups count response from keycloaktypeGroupsCountstruct { Count int`json:"count,omitempty"`}// GetGroupsParams represents the optional parameters for getting groupstypeGetGroupsParamsstruct { BriefRepresentation *bool`json:"briefRepresentation,string,omitempty"` Exact *bool`json:"exact,string,omitempty"` First *int`json:"first,string,omitempty"` Full *bool`json:"full,string,omitempty"` Max *int`json:"max,string,omitempty"` Q *string`json:"q,omitempty"` Search *string`json:"search,omitempty"`}// MarshalJSON is a custom json marshaling function to automatically set the Full and BriefRepresentation properties// for backward compatibilityfunc ( GetGroupsParams) () ([]byte, error) {typeGetGroupsParams := ()()if .BriefRepresentation != nil { .Full = BoolP(!*.BriefRepresentation) } elseif .Full != nil { .BriefRepresentation = BoolP(!*.Full) }returnjson.Marshal()}// CompositesRepresentation represents the composite roles of a roletypeCompositesRepresentationstruct { Client *map[string][]string`json:"client,omitempty"` Realm *[]string`json:"realm,omitempty"`}// Role is a roletypeRolestruct { ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` ScopeParamRequired *bool`json:"scopeParamRequired,omitempty"` Composite *bool`json:"composite,omitempty"` Composites *CompositesRepresentation`json:"composites,omitempty"` ClientRole *bool`json:"clientRole,omitempty"` ContainerID *string`json:"containerId,omitempty"` Description *string`json:"description,omitempty"` Attributes *map[string][]string`json:"attributes,omitempty"`}// GetRoleParams represents the optional parameters for getting rolestypeGetRoleParamsstruct { First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"` Search *string`json:"search,omitempty"` BriefRepresentation *bool`json:"briefRepresentation,string,omitempty"`}// ClientMappingsRepresentation is a client role mappingstypeClientMappingsRepresentationstruct { ID *string`json:"id,omitempty"` Client *string`json:"client,omitempty"` Mappings *[]Role`json:"mappings,omitempty"`}// MappingsRepresentation is a representation of role mappingstypeMappingsRepresentationstruct { ClientMappings map[string]*ClientMappingsRepresentation`json:"clientMappings,omitempty"` RealmMappings *[]Role`json:"realmMappings,omitempty"`}// ClientScope is a ClientScopetypeClientScopestruct { ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` Description *string`json:"description,omitempty"` Protocol *string`json:"protocol,omitempty"` ClientScopeAttributes *ClientScopeAttributes`json:"attributes,omitempty"` ProtocolMappers *[]ProtocolMappers`json:"protocolMappers,omitempty"`}// ClientScopeAttributes are attributes of client scopestypeClientScopeAttributesstruct { ConsentScreenText *string`json:"consent.screen.text,omitempty"` DisplayOnConsentScreen *string`json:"display.on.consent.screen,omitempty"` IncludeInTokenScope *string`json:"include.in.token.scope,omitempty"`}// ProtocolMappers are protocolmapperstypeProtocolMappersstruct { ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` Protocol *string`json:"protocol,omitempty"` ProtocolMapper *string`json:"protocolMapper,omitempty"` ConsentRequired *bool`json:"consentRequired,omitempty"` ProtocolMappersConfig *ProtocolMappersConfig`json:"config,omitempty"`}// ProtocolMappersConfig is a config of a protocol mappertypeProtocolMappersConfigstruct { UserinfoTokenClaim *string`json:"userinfo.token.claim,omitempty"` UserAttribute *string`json:"user.attribute,omitempty"` IDTokenClaim *string`json:"id.token.claim,omitempty"` AccessTokenClaim *string`json:"access.token.claim,omitempty"` ClaimName *string`json:"claim.name,omitempty"` ClaimValue *string`json:"claim.value,omitempty"` JSONTypeLabel *string`json:"jsonType.label,omitempty"` Multivalued *string`json:"multivalued,omitempty"` UsermodelClientRoleMappingClientID *string`json:"usermodel.clientRoleMapping.clientId,omitempty"` IncludedClientAudience *string`json:"included.client.audience,omitempty"` FullPath *string`json:"full.path,omitempty"` AttributeName *string`json:"attribute.name,omitempty"` AttributeNameFormat *string`json:"attribute.nameformat,omitempty"` Single *string`json:"single,omitempty"` Script *string`json:"script,omitempty"`}// Client is a ClientRepresentationtypeClientstruct { Access *map[string]interface{} `json:"access,omitempty"` AdminURL *string`json:"adminUrl,omitempty"` Attributes *map[string]string`json:"attributes,omitempty"` AuthenticationFlowBindingOverrides *map[string]string`json:"authenticationFlowBindingOverrides,omitempty"` AuthorizationServicesEnabled *bool`json:"authorizationServicesEnabled,omitempty"` AuthorizationSettings *ResourceServerRepresentation`json:"authorizationSettings,omitempty"` BaseURL *string`json:"baseUrl,omitempty"` BearerOnly *bool`json:"bearerOnly,omitempty"` ClientAuthenticatorType *string`json:"clientAuthenticatorType,omitempty"` ClientID *string`json:"clientId,omitempty"` ConsentRequired *bool`json:"consentRequired,omitempty"` DefaultClientScopes *[]string`json:"defaultClientScopes,omitempty"` DefaultRoles *[]string`json:"defaultRoles,omitempty"` Description *string`json:"description,omitempty"` DirectAccessGrantsEnabled *bool`json:"directAccessGrantsEnabled,omitempty"` Enabled *bool`json:"enabled,omitempty"` FrontChannelLogout *bool`json:"frontchannelLogout,omitempty"` FullScopeAllowed *bool`json:"fullScopeAllowed,omitempty"` ID *string`json:"id,omitempty"` ImplicitFlowEnabled *bool`json:"implicitFlowEnabled,omitempty"` Name *string`json:"name,omitempty"` NodeReRegistrationTimeout *int32`json:"nodeReRegistrationTimeout,omitempty"` NotBefore *int32`json:"notBefore,omitempty"` OptionalClientScopes *[]string`json:"optionalClientScopes,omitempty"` Origin *string`json:"origin,omitempty"` Protocol *string`json:"protocol,omitempty"` ProtocolMappers *[]ProtocolMapperRepresentation`json:"protocolMappers,omitempty"` PublicClient *bool`json:"publicClient,omitempty"` RedirectURIs *[]string`json:"redirectUris,omitempty"` RegisteredNodes *map[string]int`json:"registeredNodes,omitempty"` RegistrationAccessToken *string`json:"registrationAccessToken,omitempty"` RootURL *string`json:"rootUrl,omitempty"` Secret *string`json:"secret,omitempty"` ServiceAccountsEnabled *bool`json:"serviceAccountsEnabled,omitempty"` StandardFlowEnabled *bool`json:"standardFlowEnabled,omitempty"` SurrogateAuthRequired *bool`json:"surrogateAuthRequired,omitempty"` WebOrigins *[]string`json:"webOrigins,omitempty"`}// ResourceServerRepresentation represents the resources of a ServertypeResourceServerRepresentationstruct { AllowRemoteResourceManagement *bool`json:"allowRemoteResourceManagement,omitempty"` ClientID *string`json:"clientId,omitempty"` ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` Policies *[]PolicyRepresentation`json:"policies,omitempty"` PolicyEnforcementMode *PolicyEnforcementMode`json:"policyEnforcementMode,omitempty"` Resources *[]ResourceRepresentation`json:"resources,omitempty"` Scopes *[]ScopeRepresentation`json:"scopes,omitempty"` DecisionStrategy *DecisionStrategy`json:"decisionStrategy,omitempty"`}// RoleDefinition represents a role in a RolePolicyRepresentationtypeRoleDefinitionstruct { ID *string`json:"id,omitempty"` Private *bool`json:"private,omitempty"` Required *bool`json:"required,omitempty"`}// AdapterConfiguration represents adapter configuration of a clienttypeAdapterConfigurationstruct { Realm *string`json:"realm"` AuthServerURL *string`json:"auth-server-url"` SSLRequired *string`json:"ssl-required"` Resource *string`json:"resource"` Credentials interface{} `json:"credentials"` ConfidentialPort *int`json:"confidential-port"`}// PolicyEnforcementMode is an enum type for PolicyEnforcementMode of ResourceServerRepresentationtypePolicyEnforcementModestring// PolicyEnforcementMode valuesvar (ENFORCING = PolicyEnforcementModeP("ENFORCING")PERMISSIVE = PolicyEnforcementModeP("PERMISSIVE")DISABLED = PolicyEnforcementModeP("DISABLED"))// Logic is an enum type for policy logictypeLogicstring// Logic valuesvar (POSITIVE = LogicP("POSITIVE")NEGATIVE = LogicP("NEGATIVE"))// DecisionStrategy is an enum type for DecisionStrategy of PolicyRepresentationtypeDecisionStrategystring// DecisionStrategy valuesvar (AFFIRMATIVE = DecisionStrategyP("AFFIRMATIVE")UNANIMOUS = DecisionStrategyP("UNANIMOUS")CONSENSUS = DecisionStrategyP("CONSENSUS"))// PolicyRepresentation is a representation of a PolicytypePolicyRepresentationstruct { Config *map[string]string`json:"config,omitempty"` DecisionStrategy *DecisionStrategy`json:"decisionStrategy,omitempty"` Description *string`json:"description,omitempty"` ID *string`json:"id,omitempty"` Logic *Logic`json:"logic,omitempty"` Name *string`json:"name,omitempty"` Owner *string`json:"owner,omitempty"` Policies *[]string`json:"policies,omitempty"` Resources *[]string`json:"resources,omitempty"` Scopes *[]string`json:"scopes,omitempty"` Type *string`json:"type,omitempty"`RolePolicyRepresentationJSPolicyRepresentationClientPolicyRepresentationTimePolicyRepresentationUserPolicyRepresentationAggregatedPolicyRepresentationGroupPolicyRepresentation}// RolePolicyRepresentation represents role based policiestypeRolePolicyRepresentationstruct { Roles *[]RoleDefinition`json:"roles,omitempty"`}// JSPolicyRepresentation represents js based policiestypeJSPolicyRepresentationstruct { Code *string`json:"code,omitempty"`}// ClientPolicyRepresentation represents client based policiestypeClientPolicyRepresentationstruct { Clients *[]string`json:"clients,omitempty"`}// TimePolicyRepresentation represents time based policiestypeTimePolicyRepresentationstruct { NotBefore *string`json:"notBefore,omitempty"` NotOnOrAfter *string`json:"notOnOrAfter,omitempty"` DayMonth *string`json:"dayMonth,omitempty"` DayMonthEnd *string`json:"dayMonthEnd,omitempty"` Month *string`json:"month,omitempty"` MonthEnd *string`json:"monthEnd,omitempty"` Year *string`json:"year,omitempty"` YearEnd *string`json:"yearEnd,omitempty"` Hour *string`json:"hour,omitempty"` HourEnd *string`json:"hourEnd,omitempty"` Minute *string`json:"minute,omitempty"` MinuteEnd *string`json:"minuteEnd,omitempty"`}// UserPolicyRepresentation represents user based policiestypeUserPolicyRepresentationstruct { Users *[]string`json:"users,omitempty"`}// AggregatedPolicyRepresentation represents aggregated policiestypeAggregatedPolicyRepresentationstruct { Policies *[]string`json:"policies,omitempty"`}// GroupPolicyRepresentation represents group based policiestypeGroupPolicyRepresentationstruct { Groups *[]GroupDefinition`json:"groups,omitempty"` GroupsClaim *string`json:"groupsClaim,omitempty"`}// GroupDefinition represents a group in a GroupPolicyRepresentationtypeGroupDefinitionstruct { ID *string`json:"id,omitempty"` Path *string`json:"path,omitempty"` ExtendChildren *bool`json:"extendChildren,omitempty"`}// ResourceRepresentation is a representation of a ResourcetypeResourceRepresentationstruct { ID *string`json:"_id,omitempty"`// TODO: is marked "_optional" in template, input error or deliberate? Attributes *map[string][]string`json:"attributes,omitempty"` DisplayName *string`json:"displayName,omitempty"` IconURI *string`json:"icon_uri,omitempty"`// TODO: With "_" because that's how it's written down in the template Name *string`json:"name,omitempty"` Owner *ResourceOwnerRepresentation`json:"owner,omitempty"` OwnerManagedAccess *bool`json:"ownerManagedAccess,omitempty"` ResourceScopes *[]ScopeRepresentation`json:"resource_scopes,omitempty"` Scopes *[]ScopeRepresentation`json:"scopes,omitempty"` Type *string`json:"type,omitempty"` URIs *[]string`json:"uris,omitempty"`}// ResourceOwnerRepresentation represents a resource's ownertypeResourceOwnerRepresentationstruct { ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"`}// ScopeRepresentation is a represents a ScopetypeScopeRepresentationstruct { DisplayName *string`json:"displayName,omitempty"` IconURI *string`json:"iconUri,omitempty"` ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` Policies *[]PolicyRepresentation`json:"policies,omitempty"` Resources *[]ResourceRepresentation`json:"resources,omitempty"`}// ProtocolMapperRepresentation represents....typeProtocolMapperRepresentationstruct { Config *map[string]string`json:"config,omitempty"` ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` Protocol *string`json:"protocol,omitempty"` ProtocolMapper *string`json:"protocolMapper,omitempty"` ConsentRequired *bool`json:"consentRequired,omitempty"`}// GetClientsParams represents the query parameterstypeGetClientsParamsstruct { ClientID *string`json:"clientId,omitempty"` ViewableOnly *bool`json:"viewableOnly,string,omitempty"` First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"` Search *bool`json:"search,string,omitempty"` SearchableAttributes *string`json:"q,omitempty"`}// UserInfoAddress is representation of the address sub-filed of UserInfo// https://openid.net/specs/openid-connect-core-1_0.html#AddressClaimtypeUserInfoAddressstruct { Formatted *string`json:"formatted,omitempty"` StreetAddress *string`json:"street_address,omitempty"` Locality *string`json:"locality,omitempty"` Region *string`json:"region,omitempty"` PostalCode *string`json:"postal_code,omitempty"` Country *string`json:"country,omitempty"`}// UserInfo is returned by the userinfo endpoint// https://openid.net/specs/openid-connect-core-1_0.html#StandardClaimstypeUserInfostruct { Sub *string`json:"sub,omitempty"` Name *string`json:"name,omitempty"` GivenName *string`json:"given_name,omitempty"` FamilyName *string`json:"family_name,omitempty"` MiddleName *string`json:"middle_name,omitempty"` Nickname *string`json:"nickname,omitempty"` PreferredUsername *string`json:"preferred_username,omitempty"` Profile *string`json:"profile,omitempty"` Picture *string`json:"picture,omitempty"` Website *string`json:"website,omitempty"` Email *string`json:"email,omitempty"` EmailVerified *bool`json:"email_verified,omitempty"` Gender *string`json:"gender,omitempty"` ZoneInfo *string`json:"zoneinfo,omitempty"` Locale *string`json:"locale,omitempty"` PhoneNumber *string`json:"phone_number,omitempty"` PhoneNumberVerified *bool`json:"phone_number_verified,omitempty"` Address *UserInfoAddress`json:"address,omitempty"` UpdatedAt *int`json:"updated_at,omitempty"`}// RolesRepresentation represents the roles of a realmtypeRolesRepresentationstruct { Client *map[string][]Role`json:"client,omitempty"` Realm *[]Role`json:"realm,omitempty"`}// RealmRepresentation represents a realmtypeRealmRepresentationstruct { AccessCodeLifespan *int`json:"accessCodeLifespan,omitempty"` AccessCodeLifespanLogin *int`json:"accessCodeLifespanLogin,omitempty"` AccessCodeLifespanUserAction *int`json:"accessCodeLifespanUserAction,omitempty"` AccessTokenLifespan *int`json:"accessTokenLifespan,omitempty"` AccessTokenLifespanForImplicitFlow *int`json:"accessTokenLifespanForImplicitFlow,omitempty"` AccountTheme *string`json:"accountTheme,omitempty"` ActionTokenGeneratedByAdminLifespan *int`json:"actionTokenGeneratedByAdminLifespan,omitempty"` ActionTokenGeneratedByUserLifespan *int`json:"actionTokenGeneratedByUserLifespan,omitempty"` AdminEventsDetailsEnabled *bool`json:"adminEventsDetailsEnabled,omitempty"` AdminEventsEnabled *bool`json:"adminEventsEnabled,omitempty"` AdminTheme *string`json:"adminTheme,omitempty"` Attributes *map[string]string`json:"attributes,omitempty"` AuthenticationFlows *[]interface{} `json:"authenticationFlows,omitempty"` AuthenticatorConfig *[]interface{} `json:"authenticatorConfig,omitempty"` BrowserFlow *string`json:"browserFlow,omitempty"` BrowserSecurityHeaders *map[string]string`json:"browserSecurityHeaders,omitempty"` BruteForceProtected *bool`json:"bruteForceProtected,omitempty"` ClientAuthenticationFlow *string`json:"clientAuthenticationFlow,omitempty"` ClientPolicies *map[string][]interface{} `json:"clientPolicies,omitempty"` ClientProfiles *map[string][]interface{} `json:"clientProfiles,omitempty"` ClientScopeMappings *map[string][]interface{} `json:"clientScopeMappings,omitempty"` ClientScopes *[]ClientScope`json:"clientScopes,omitempty"` Clients *[]Client`json:"clients,omitempty"` Components interface{} `json:"components,omitempty"` DefaultDefaultClientScopes *[]string`json:"defaultDefaultClientScopes,omitempty"` DefaultGroups *[]string`json:"defaultGroups,omitempty"` DefaultLocale *string`json:"defaultLocale,omitempty"` DefaultOptionalClientScopes *[]string`json:"defaultOptionalClientScopes,omitempty"` DefaultRole *Role`json:"defaultRole,omitempty"` DefaultRoles *[]string`json:"defaultRoles,omitempty"` DefaultSignatureAlgorithm *string`json:"defaultSignatureAlgorithm,omitempty"` DirectGrantFlow *string`json:"directGrantFlow,omitempty"` DisplayName *string`json:"displayName,omitempty"` DisplayNameHTML *string`json:"displayNameHtml,omitempty"` DockerAuthenticationFlow *string`json:"dockerAuthenticationFlow,omitempty"` DuplicateEmailsAllowed *bool`json:"duplicateEmailsAllowed,omitempty"` EditUsernameAllowed *bool`json:"editUsernameAllowed,omitempty"` EmailTheme *string`json:"emailTheme,omitempty"` Enabled *bool`json:"enabled,omitempty"` EnabledEventTypes *[]string`json:"enabledEventTypes,omitempty"` EventsEnabled *bool`json:"eventsEnabled,omitempty"` EventsExpiration *int64`json:"eventsExpiration,omitempty"` EventsListeners *[]string`json:"eventsListeners,omitempty"` FailureFactor *int`json:"failureFactor,omitempty"` FederatedUsers *[]interface{} `json:"federatedUsers,omitempty"` Groups *[]interface{} `json:"groups,omitempty"` ID *string`json:"id,omitempty"` IdentityProviderMappers *[]interface{} `json:"identityProviderMappers,omitempty"` IdentityProviders *[]interface{} `json:"identityProviders,omitempty"` InternationalizationEnabled *bool`json:"internationalizationEnabled,omitempty"` KeycloakVersion *string`json:"keycloakVersion,omitempty"` LoginTheme *string`json:"loginTheme,omitempty"` LoginWithEmailAllowed *bool`json:"loginWithEmailAllowed,omitempty"` MaxDeltaTimeSeconds *int`json:"maxDeltaTimeSeconds,omitempty"` MaxFailureWaitSeconds *int`json:"maxFailureWaitSeconds,omitempty"` MinimumQuickLoginWaitSeconds *int`json:"minimumQuickLoginWaitSeconds,omitempty"` NotBefore *int`json:"notBefore,omitempty"` OfflineSessionIdleTimeout *int`json:"offlineSessionIdleTimeout,omitempty"` OfflineSessionMaxLifespan *int`json:"offlineSessionMaxLifespan,omitempty"` OfflineSessionMaxLifespanEnabled *bool`json:"offlineSessionMaxLifespanEnabled,omitempty"` OtpPolicyAlgorithm *string`json:"otpPolicyAlgorithm,omitempty"` OtpPolicyDigits *int`json:"otpPolicyDigits,omitempty"` OtpPolicyInitialCounter *int`json:"otpPolicyInitialCounter,omitempty"` OtpPolicyLookAheadWindow *int`json:"otpPolicyLookAheadWindow,omitempty"` OtpPolicyPeriod *int`json:"otpPolicyPeriod,omitempty"` OtpPolicyType *string`json:"otpPolicyType,omitempty"` OtpSupportedApplications *[]string`json:"otpSupportedApplications,omitempty"` PasswordPolicy *string`json:"passwordPolicy,omitempty"` PermanentLockout *bool`json:"permanentLockout,omitempty"` ProtocolMappers *[]interface{} `json:"protocolMappers,omitempty"` QuickLoginCheckMilliSeconds *int64`json:"quickLoginCheckMilliSeconds,omitempty"` Realm *string`json:"realm,omitempty"` RefreshTokenMaxReuse *int`json:"refreshTokenMaxReuse,omitempty"` RegistrationAllowed *bool`json:"registrationAllowed,omitempty"` RegistrationEmailAsUsername *bool`json:"registrationEmailAsUsername,omitempty"` RegistrationFlow *string`json:"registrationFlow,omitempty"` RememberMe *bool`json:"rememberMe,omitempty"` RequiredActions *[]interface{} `json:"requiredActions,omitempty"` ResetCredentialsFlow *string`json:"resetCredentialsFlow,omitempty"` ResetPasswordAllowed *bool`json:"resetPasswordAllowed,omitempty"` RevokeRefreshToken *bool`json:"revokeRefreshToken,omitempty"` Roles *RolesRepresentation`json:"roles,omitempty"` ScopeMappings *[]interface{} `json:"scopeMappings,omitempty"` SMTPServer *map[string]string`json:"smtpServer,omitempty"` SslRequired *string`json:"sslRequired,omitempty"` SsoSessionIdleTimeout *int`json:"ssoSessionIdleTimeout,omitempty"` SsoSessionIdleTimeoutRememberMe *int`json:"ssoSessionIdleTimeoutRememberMe,omitempty"` SsoSessionMaxLifespan *int`json:"ssoSessionMaxLifespan,omitempty"` SsoSessionMaxLifespanRememberMe *int`json:"ssoSessionMaxLifespanRememberMe,omitempty"` SupportedLocales *[]string`json:"supportedLocales,omitempty"` UserFederationMappers *[]interface{} `json:"userFederationMappers,omitempty"` UserFederationProviders *[]interface{} `json:"userFederationProviders,omitempty"` UserManagedAccessAllowed *bool`json:"userManagedAccessAllowed,omitempty"` Users *[]User`json:"users,omitempty"` VerifyEmail *bool`json:"verifyEmail,omitempty"` WaitIncrementSeconds *int`json:"waitIncrementSeconds,omitempty"` WebAuthnPolicyAcceptableAaguids *[]string`json:"webAuthnPolicyAcceptableAaguids,omitempty"` WebAuthnPolicyAttestationConveyancePreference *string`json:"webAuthnPolicyAttestationConveyancePreference,omitempty"` WebAuthnPolicyAuthenticatorAttachment *string`json:"webAuthnPolicyAuthenticatorAttachment,omitempty"` WebAuthnPolicyAvoidSameAuthenticatorRegister *bool`json:"webAuthnPolicyAvoidSameAuthenticatorRegister,omitempty"` WebAuthnPolicyCreateTimeout *int`json:"webAuthnPolicyCreateTimeout,omitempty"` WebAuthnPolicyPasswordlessAcceptableAaguids *[]string`json:"webAuthnPolicyPasswordlessAcceptableAaguids,omitempty"` WebAuthnPolicyPasswordlessAttestationConveyancePreference *string`json:"webAuthnPolicyPasswordlessAttestationConveyancePreference,omitempty"` WebAuthnPolicyPasswordlessAuthenticatorAttachment *string`json:"webAuthnPolicyPasswordlessAuthenticatorAttachment,omitempty"` WebAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister *bool`json:"webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister,omitempty"` WebAuthnPolicyPasswordlessCreateTimeout *int`json:"webAuthnPolicyPasswordlessCreateTimeout,omitempty"` WebAuthnPolicyPasswordlessRequireResidentKey *string`json:"webAuthnPolicyPasswordlessRequireResidentKey,omitempty"` WebAuthnPolicyPasswordlessRpEntityName *string`json:"webAuthnPolicyPasswordlessRpEntityName,omitempty"` WebAuthnPolicyPasswordlessRpID *string`json:"webAuthnPolicyPasswordlessRpId,omitempty"` WebAuthnPolicyPasswordlessSignatureAlgorithms *[]string`json:"webAuthnPolicyPasswordlessSignatureAlgorithms,omitempty"` WebAuthnPolicyPasswordlessUserVerificationRequirement *string`json:"webAuthnPolicyPasswordlessUserVerificationRequirement,omitempty"` WebAuthnPolicyRequireResidentKey *string`json:"webAuthnPolicyRequireResidentKey,omitempty"` WebAuthnPolicyRpEntityName *string`json:"webAuthnPolicyRpEntityName,omitempty"` WebAuthnPolicyRpID *string`json:"webAuthnPolicyRpId,omitempty"` WebAuthnPolicySignatureAlgorithms *[]string`json:"webAuthnPolicySignatureAlgorithms,omitempty"` WebAuthnPolicyUserVerificationRequirement *string`json:"webAuthnPolicyUserVerificationRequirement,omitempty"`}// AuthenticationFlowRepresentation represents an authentication flow of a realmtypeAuthenticationFlowRepresentationstruct { Alias *string`json:"alias,omitempty"` AuthenticationExecutions *[]AuthenticationExecutionRepresentation`json:"authenticationExecutions,omitempty"` BuiltIn *bool`json:"builtIn,omitempty"` Description *string`json:"description,omitempty"` ID *string`json:"id,omitempty"` ProviderID *string`json:"providerId,omitempty"` TopLevel *bool`json:"topLevel,omitempty"`}// AuthenticationExecutionRepresentation represents the authentication execution of an AuthenticationFlowRepresentationtypeAuthenticationExecutionRepresentationstruct { Authenticator *string`json:"authenticator,omitempty"` AuthenticatorConfig *string`json:"authenticatorConfig,omitempty"` AuthenticatorFlow *bool`json:"authenticatorFlow,omitempty"` AutheticatorFlow *bool`json:"autheticatorFlow,omitempty"` FlowAlias *string`json:"flowAlias,omitempty"` Priority *int`json:"priority,omitempty"` Requirement *string`json:"requirement,omitempty"` UserSetupAllowed *bool`json:"userSetupAllowed,omitempty"`}// CreateAuthenticationExecutionRepresentation contains the provider to be used for a new authentication representationtypeCreateAuthenticationExecutionRepresentationstruct { Provider *string`json:"provider,omitempty"`}// CreateAuthenticationExecutionFlowRepresentation contains the provider to be used for a new authentication representationtypeCreateAuthenticationExecutionFlowRepresentationstruct { Alias *string`json:"alias,omitempty"` Description *string`json:"description,omitempty"` Provider *string`json:"provider,omitempty"` Type *string`json:"type,omitempty"`}// ModifyAuthenticationExecutionRepresentation is the payload for updating an execution representationtypeModifyAuthenticationExecutionRepresentationstruct { ID *string`json:"id,omitempty"` ProviderID *string`json:"providerId,omitempty"` AuthenticationConfig *string`json:"authenticationConfig,omitempty"` AuthenticationFlow *bool`json:"authenticationFlow,omitempty"` Requirement *string`json:"requirement,omitempty"` FlowID *string`json:"flowId"` DisplayName *string`json:"displayName,omitempty"` Alias *string`json:"alias,omitempty"` RequirementChoices *[]string`json:"requirementChoices,omitempty"` Configurable *bool`json:"configurable,omitempty"` Level *int`json:"level,omitempty"` Index *int`json:"index,omitempty"` Description *string`json:"description"`}// MultiValuedHashMap represents somethingtypeMultiValuedHashMapstruct { Empty *bool`json:"empty,omitempty"` LoadFactor *float32`json:"loadFactor,omitempty"` Threshold *int32`json:"threshold,omitempty"`}// AuthorizationParameters represents the options to obtain get an authorizationtypeAuthorizationParametersstruct { ResponseType *string`json:"code,omitempty"` ClientID *string`json:"client_id,omitempty"` Scope *string`json:"scope,omitempty"` RedirectURI *string`json:"redirect_uri,omitempty"` State *string`json:"state,omitempty"` Nonce *string`json:"nonce,omitempty"` IDTokenHint *string`json:"id_token_hint,omitempty"`}// FormData returns a map of options to be used in SetFormData functionfunc ( *AuthorizationParameters) () map[string]string { , := json.Marshal()varmap[string]string _ = json.Unmarshal(, &)return}// AuthorizationResponse represents the response to an authorization request.typeAuthorizationResponsestruct {}// TokenOptions represents the options to obtain a tokentypeTokenOptionsstruct { ClientID *string`json:"client_id,omitempty"` ClientSecret *string`json:"-"` GrantType *string`json:"grant_type,omitempty"` RefreshToken *string`json:"refresh_token,omitempty"` Scopes *[]string`json:"-"` Scope *string`json:"scope,omitempty"` ResponseTypes *[]string`json:"-"` ResponseType *string`json:"response_type,omitempty"` Permission *string`json:"permission,omitempty"` Username *string`json:"username,omitempty"` Password *string`json:"password,omitempty"` Totp *string`json:"totp,omitempty"` Code *string`json:"code,omitempty"` RedirectURI *string`json:"redirect_uri,omitempty"` ClientAssertionType *string`json:"client_assertion_type,omitempty"` ClientAssertion *string`json:"client_assertion,omitempty"` SubjectToken *string`json:"subject_token,omitempty"` RequestedSubject *string`json:"requested_subject,omitempty"` Audience *string`json:"audience,omitempty"` RequestedTokenType *string`json:"requested_token_type,omitempty"`}// FormData returns a map of options to be used in SetFormData functionfunc ( *TokenOptions) () map[string]string {if !NilOrEmptySlice(.Scopes) { .Scope = StringP(strings.Join(*.Scopes, " ")) }if !NilOrEmptySlice(.ResponseTypes) { .ResponseType = StringP(strings.Join(*.ResponseTypes, " ")) }ifNilOrEmpty(.ResponseType) { .ResponseType = StringP("token") } , := json.Marshal()varmap[string]string _ = json.Unmarshal(, &)return}// RequestingPartyTokenOptions represents the options to obtain a requesting party tokentypeRequestingPartyTokenOptionsstruct { GrantType *string`json:"grant_type,omitempty"` Ticket *string`json:"ticket,omitempty"` ClaimToken *string`json:"claim_token,omitempty"` ClaimTokenFormat *string`json:"claim_token_format,omitempty"` RPT *string`json:"rpt,omitempty"` Permissions *[]string`json:"-"` Audience *string`json:"audience,omitempty"` ResponseIncludeResourceName *bool`json:"response_include_resource_name,string,omitempty"` ResponsePermissionsLimit *uint32`json:"response_permissions_limit,omitempty"` SubmitRequest *bool`json:"submit_request,string,omitempty"` ResponseMode *string`json:"response_mode,omitempty"` SubjectToken *string`json:"subject_token,omitempty"`}// FormData returns a map of options to be used in SetFormData functionfunc ( *RequestingPartyTokenOptions) () map[string]string {ifNilOrEmpty(.GrantType) { // required grant type for RPT .GrantType = StringP("urn:ietf:params:oauth:grant-type:uma-ticket") }if .ResponseIncludeResourceName == nil { // defaults to true if no value set .ResponseIncludeResourceName = BoolP(true) } , := json.Marshal()varmap[string]string _ = json.Unmarshal(, &)return}// RequestingPartyPermission is returned by request party token with response type set to "permissions"typeRequestingPartyPermissionstruct { Claims *map[string]string`json:"claims,omitempty"` ResourceID *string`json:"rsid,omitempty"` ResourceName *string`json:"rsname,omitempty"` Scopes *[]string`json:"scopes,omitempty"`}// RequestingPartyPermissionDecision is returned by request party token with response type set to "decision"typeRequestingPartyPermissionDecisionstruct { Result *bool`json:"result,omitempty"`}// UserSessionRepresentation represents a list of user's sessionstypeUserSessionRepresentationstruct { Clients *map[string]string`json:"clients,omitempty"` ID *string`json:"id,omitempty"` IPAddress *string`json:"ipAddress,omitempty"` LastAccess *int64`json:"lastAccess,omitempty"` Start *int64`json:"start,omitempty"` UserID *string`json:"userId,omitempty"` Username *string`json:"username,omitempty"`}// SystemInfoRepresentation represents a system infotypeSystemInfoRepresentationstruct { FileEncoding *string`json:"fileEncoding,omitempty"` JavaHome *string`json:"javaHome,omitempty"` JavaRuntime *string`json:"javaRuntime,omitempty"` JavaVendor *string`json:"javaVendor,omitempty"` JavaVersion *string`json:"javaVersion,omitempty"` JavaVM *string`json:"javaVm,omitempty"` JavaVMVersion *string`json:"javaVmVersion,omitempty"` OSArchitecture *string`json:"osArchitecture,omitempty"` OSName *string`json:"osName,omitempty"` OSVersion *string`json:"osVersion,omitempty"` ServerTime *string`json:"serverTime,omitempty"` Uptime *string`json:"uptime,omitempty"` UptimeMillis *int`json:"uptimeMillis,omitempty"` UserDir *string`json:"userDir,omitempty"` UserLocale *string`json:"userLocale,omitempty"` UserName *string`json:"userName,omitempty"` UserTimezone *string`json:"userTimezone,omitempty"` Version *string`json:"version,omitempty"`}// MemoryInfoRepresentation represents a memory infotypeMemoryInfoRepresentationstruct { Free *int`json:"free,omitempty"` FreeFormated *string`json:"freeFormated,omitempty"` FreePercentage *int`json:"freePercentage,omitempty"` Total *int`json:"total,omitempty"` TotalFormated *string`json:"totalFormated,omitempty"` Used *int`json:"used,omitempty"` UsedFormated *string`json:"usedFormated,omitempty"`}// PasswordPolicy represents the configuration for a supported password policytypePasswordPolicystruct { ConfigType string`json:"configType,omitempty"` DefaultValue string`json:"defaultValue,omitempty"` DisplayName string`json:"displayName,omitempty"` ID string`json:"id,omitempty"` MultipleSupported bool`json:"multipleSupported,omitempty"`}// ProtocolMapperTypeProperty represents a property of a ProtocolMapperTypetypeProtocolMapperTypePropertystruct { Name string`json:"name,omitempty"` Label string`json:"label,omitempty"` HelpText string`json:"helpText,omitempty"` Type string`json:"type,omitempty"` Options []string`json:"options,omitempty"` DefaultValue EnforcedString`json:"defaultValue,omitempty"` Secret bool`json:"secret,omitempty"` ReadOnly bool`json:"readOnly,omitempty"`}// ProtocolMapperType represents a type of protocol mappertypeProtocolMapperTypestruct { ID string`json:"id,omitempty"` Name string`json:"name,omitempty"` Category string`json:"category,omitempty"` HelpText string`json:"helpText,omitempty"` Priority int`json:"priority,omitempty"` Properties []ProtocolMapperTypeProperty`json:"properties,omitempty"`}// ProtocolMapperTypes holds the currently available ProtocolMapperType-s grouped by protocoltypeProtocolMapperTypesstruct { DockerV2 []ProtocolMapperType`json:"docker-v2,omitempty"` SAML []ProtocolMapperType`json:"saml,omitempty"` OpenIDConnect []ProtocolMapperType`json:"openid-connect,omitempty"`}// BuiltinProtocolMappers holds the currently available built-in blueprints of ProtocolMapper-s grouped by protocoltypeBuiltinProtocolMappersstruct { SAML []ProtocolMapperRepresentation`json:"saml,omitempty"` OpenIDConnect []ProtocolMapperRepresentation`json:"openid-connect,omitempty"`}// ServerInfoRepresentation represents a server infotypeServerInfoRepresentationstruct { SystemInfo *SystemInfoRepresentation`json:"systemInfo,omitempty"` MemoryInfo *MemoryInfoRepresentation`json:"memoryInfo,omitempty"` PasswordPolicies []*PasswordPolicy`json:"passwordPolicies,omitempty"` ProtocolMapperTypes *ProtocolMapperTypes`json:"protocolMapperTypes,omitempty"` BuiltinProtocolMappers *BuiltinProtocolMappers`json:"builtinProtocolMappers,omitempty"` Themes *Themes`json:"themes,omitempty"`}// ThemeRepresentation contains the theme name and localestypeThemeRepresentationstruct { Name string`json:"name,omitempty"` Locales []string`json:"locales,omitempty"`}// Themes contains the available keycloak themes with localestypeThemesstruct { Accounts []ThemeRepresentation`json:"account,omitempty"` Admin []ThemeRepresentation`json:"admin,omitempty"` Common []ThemeRepresentation`json:"common,omitempty"` Email []ThemeRepresentation`json:"email,omitempty"` Login []ThemeRepresentation`json:"login,omitempty"` Welcome []ThemeRepresentation`json:"welcome,omitempty"`}// FederatedIdentityRepresentation represents an user federated identitytypeFederatedIdentityRepresentationstruct { IdentityProvider *string`json:"identityProvider,omitempty"` UserID *string`json:"userId,omitempty"` UserName *string`json:"userName,omitempty"`}// IdentityProviderRepresentation represents an identity providertypeIdentityProviderRepresentationstruct { AddReadTokenRoleOnCreate *bool`json:"addReadTokenRoleOnCreate,omitempty"` Alias *string`json:"alias,omitempty"` Config *map[string]string`json:"config,omitempty"` DisplayName *string`json:"displayName,omitempty"` Enabled *bool`json:"enabled,omitempty"` FirstBrokerLoginFlowAlias *string`json:"firstBrokerLoginFlowAlias,omitempty"` InternalID *string`json:"internalId,omitempty"` LinkOnly *bool`json:"linkOnly,omitempty"` PostBrokerLoginFlowAlias *string`json:"postBrokerLoginFlowAlias,omitempty"` ProviderID *string`json:"providerId,omitempty"` StoreToken *bool`json:"storeToken,omitempty"` TrustEmail *bool`json:"trustEmail,omitempty"`}// IdentityProviderMapper represents the body of a call to add a mapper to// an identity providertypeIdentityProviderMapperstruct { ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"` IdentityProviderMapper *string`json:"identityProviderMapper,omitempty"` IdentityProviderAlias *string`json:"identityProviderAlias,omitempty"` Config *map[string]string`json:"config"`}// GetResourceParams represents the optional parameters for getting resourcestypeGetResourceParamsstruct { Deep *bool`json:"deep,string,omitempty"` First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"` Name *string`json:"name,omitempty"` Owner *string`json:"owner,omitempty"` Type *string`json:"type,omitempty"` URI *string`json:"uri,omitempty"` Scope *string`json:"scope,omitempty"` MatchingURI *bool`json:"matchingUri,string,omitempty"` ExactName *bool`json:"exactName,string,omitempty"`}// GetScopeParams represents the optional parameters for getting scopestypeGetScopeParamsstruct { Deep *bool`json:"deep,string,omitempty"` First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"` Name *string`json:"name,omitempty"`}// GetPolicyParams represents the optional parameters for getting policies// TODO: more policy params?typeGetPolicyParamsstruct { First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"` Name *string`json:"name,omitempty"` Permission *bool`json:"permission,string,omitempty"` Type *string`json:"type,omitempty"`}// GetPermissionParams represents the optional parameters for getting permissionstypeGetPermissionParamsstruct { First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"` Name *string`json:"name,omitempty"` Resource *string`json:"resource,omitempty"` Scope *string`json:"scope,omitempty"` Type *string`json:"type,omitempty"`}// GetUsersByRoleParams represents the optional parameters for getting users by roletypeGetUsersByRoleParamsstruct { First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"`}// PermissionRepresentation is a representation of a RequestingPartyPermissiontypePermissionRepresentationstruct { DecisionStrategy *DecisionStrategy`json:"decisionStrategy,omitempty"` Description *string`json:"description,omitempty"` ID *string`json:"id,omitempty"` Logic *Logic`json:"logic,omitempty"` Name *string`json:"name,omitempty"` Policies *[]string`json:"policies,omitempty"` Resources *[]string`json:"resources,omitempty"` ResourceType *string`json:"resourceType,omitempty"` Scopes *[]string`json:"scopes,omitempty"` Type *string`json:"type,omitempty"`}// CreatePermissionTicketParams represents the optional parameters for getting a permission tickettypeCreatePermissionTicketParamsstruct { ResourceID *string`json:"resource_id,omitempty"` ResourceScopes *[]string`json:"resource_scopes,omitempty"` Claims *map[string][]string`json:"claims,omitempty"`}// PermissionTicketDescriptionRepresentation represents the parameters returned along with a permission tickettypePermissionTicketDescriptionRepresentationstruct { ID *string`json:"id,omitempty"` CreatedTimeStamp *int64`json:"createdTimestamp,omitempty"` UserName *string`json:"username,omitempty"` Enabled *bool`json:"enabled,omitempty"` TOTP *bool`json:"totp,omitempty"` EmailVerified *bool`json:"emailVerified,omitempty"` FirstName *string`json:"firstName,omitempty"` LastName *string`json:"lastName,omitempty"` Email *string`json:"email,omitempty"` DisableCredentialTypes *[]string`json:"disableCredentialTypes,omitempty"` RequiredActions *[]string`json:"requiredActions,omitempty"` NotBefore *int64`json:"notBefore,omitempty"` Access *AccessRepresentation`json:"access,omitempty"`}// AccessRepresentation represents the access parameters returned in the permission ticket descriptiontypeAccessRepresentationstruct { ManageGroupMembership *bool`json:"manageGroupMembership,omitempty"` View *bool`json:"view,omitempty"` MapRoles *bool`json:"mapRoles,omitempty"` Impersonate *bool`json:"impersonate,omitempty"` Manage *bool`json:"manage,omitempty"`}// PermissionTicketResponseRepresentation represents the keycloak response containing the permission tickettypePermissionTicketResponseRepresentationstruct { Ticket *string`json:"ticket,omitempty"`}// PermissionTicketRepresentation represents the permission ticket contentstypePermissionTicketRepresentationstruct { AZP *string`json:"azp,omitempty"` Claims *map[string][]string`json:"claims,omitempty"` Permissions *[]PermissionTicketPermissionRepresentation`json:"permissions,omitempty"`jwt.StandardClaims}// PermissionTicketPermissionRepresentation represents the individual permissions in a permission tickettypePermissionTicketPermissionRepresentationstruct { Scopes *[]string`json:"scopes,omitempty"` RSID *string`json:"rsid,omitempty"`}// PermissionGrantParams represents the permission which the resource owner is granting to a specific usertypePermissionGrantParamsstruct { ResourceID *string`json:"resource,omitempty"` RequesterID *string`json:"requester,omitempty"` Granted *bool`json:"granted,omitempty"` ScopeName *string`json:"scopeName,omitempty"` TicketID *string`json:"id,omitempty"`}// PermissionGrantResponseRepresentation represents the reply from Keycloack after granting permissiontypePermissionGrantResponseRepresentationstruct { ID *string`json:"id,omitempty"` Owner *string`json:"owner,omitempty"` ResourceID *string`json:"resource,omitempty"` Scope *string`json:"scope,omitempty"` Granted *bool`json:"granted,omitempty"` RequesterID *string`json:"requester,omitempty"`}// GetUserPermissionParams represents the optional parameters for getting user permissionstypeGetUserPermissionParamsstruct { ScopeID *string`json:"scopeId,omitempty"` ResourceID *string`json:"resourceId,omitempty"` Owner *string`json:"owner,omitempty"` Requester *string`json:"requester,omitempty"` Granted *bool`json:"granted,omitempty"` ReturnNames *string`json:"returnNames,omitempty"` First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"`}// ResourcePolicyRepresentation is a representation of a Policy applied to a resourcetypeResourcePolicyRepresentationstruct { Name *string`json:"name,omitempty"` Description *string`json:"description,omitempty"` Scopes *[]string`json:"scopes,omitempty"` Roles *[]string`json:"roles,omitempty"` Groups *[]string`json:"groups,omitempty"` Clients *[]string`json:"clients,omitempty"` ID *string`json:"id,omitempty"` Logic *Logic`json:"logic,omitempty"` DecisionStrategy *DecisionStrategy`json:"decisionStrategy,omitempty"` Owner *string`json:"owner,omitempty"` Type *string`json:"type,omitempty"` Users *[]string`json:"users,omitempty"`}// PolicyScopeRepresentation is a representation of a scopes of specific policytypePolicyScopeRepresentationstruct { ID *string`json:"id,omitempty"` Name *string`json:"name,omitempty"`}// PolicyResourceRepresentation is a representation of a resource of specific policytypePolicyResourceRepresentationstruct { ID *string`json:"_id,omitempty"` Name *string`json:"name,omitempty"`}// GetResourcePoliciesParams is a representation of the query params for getting policiestypeGetResourcePoliciesParamsstruct { ResourceID *string`json:"resource,omitempty"` Name *string`json:"name,omitempty"` Scope *string`json:"scope,omitempty"` First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"`}// GetEventsParams represents the optional parameters for getting eventstypeGetEventsParamsstruct { Client *string`json:"client,omitempty"` DateFrom *string`json:"dateFrom,omitempty"` DateTo *string`json:"dateTo,omitempty"` First *int32`json:"first,string,omitempty"` IPAddress *string`json:"ipAddress,omitempty"` Max *int32`json:"max,string,omitempty"` Type []string`json:"type,omitempty"` UserID *string`json:"user,omitempty"`}// EventRepresentation is a representation of a EventtypeEventRepresentationstruct { Time int64`json:"time,omitempty"` Type *string`json:"type,omitempty"` RealmID *string`json:"realmId,omitempty"` ClientID *string`json:"clientId,omitempty"` UserID *string`json:"userId,omitempty"` SessionID *string`json:"sessionId,omitempty"` IPAddress *string`json:"ipAddress,omitempty"` Details map[string]string`json:"details,omitempty"`}// CredentialRepresentation is a representations of the credentials// v7: https://www.keycloak.org/docs-api/7.0/rest-api/index.html#_credentialrepresentation// v8: https://www.keycloak.org/docs-api/8.0/rest-api/index.html#_credentialrepresentationtypeCredentialRepresentationstruct {// Common part CreatedDate *int64`json:"createdDate,omitempty"` Temporary *bool`json:"temporary,omitempty"` Type *string`json:"type,omitempty"` Value *string`json:"value,omitempty"`// <= v7 Algorithm *string`json:"algorithm,omitempty"` Config *MultiValuedHashMap`json:"config,omitempty"` Counter *int32`json:"counter,omitempty"` Device *string`json:"device,omitempty"` Digits *int32`json:"digits,omitempty"` HashIterations *int32`json:"hashIterations,omitempty"` HashedSaltedValue *string`json:"hashedSaltedValue,omitempty"` Period *int32`json:"period,omitempty"` Salt *string`json:"salt,omitempty"`// >= v8 CredentialData *string`json:"credentialData,omitempty"` ID *string`json:"id,omitempty"` Priority *int32`json:"priority,omitempty"` SecretData *string`json:"secretData,omitempty"` UserLabel *string`json:"userLabel,omitempty"`}// BruteForceStatus is a representation of realm user regarding brute force attacktypeBruteForceStatusstruct { NumFailures *int`json:"numFailures,omitempty"` Disabled *bool`json:"disabled,omitempty"` LastIPFailure *string`json:"lastIPFailure,omitempty"` LastFailure *int`json:"lastFailure,omitempty"`}// RequiredActionProviderRepresentation is a representation of required actions// v15: https://www.keycloak.org/docs-api/15.0/rest-api/index.html#_requiredactionproviderrepresentationtypeRequiredActionProviderRepresentationstruct { Alias *string`json:"alias,omitempty"` Config *map[string]string`json:"config,omitempty"` DefaultAction *bool`json:"defaultAction,omitempty"` Enabled *bool`json:"enabled,omitempty"` Name *string`json:"name,omitempty"` Priority *int32`json:"priority,omitempty"` ProviderID *string`json:"providerId,omitempty"`}// ManagementPermissionRepresentation is a representation of management permissions// v18: https://www.keycloak.org/docs-api/18.0/rest-api/#_managementpermissionreferencetypeManagementPermissionRepresentationstruct { Enabled *bool`json:"enabled,omitempty"` Resource *string`json:"resource,omitempty"` ScopePermissions *map[string]string`json:"scopePermissions,omitempty"`}// GetClientUserSessionsParams represents the optional parameters for getting user sessions associated with the clienttypeGetClientUserSessionsParamsstruct { First *int`json:"first,string,omitempty"` Max *int`json:"max,string,omitempty"`}// prettyStringStruct returns struct formatted into pretty stringfunc prettyStringStruct( interface{}) string { , := json.MarshalIndent(, "", "\t")if != nil {return"" }returnstring()}// Stringer implementations for all struct typesfunc ( *CertResponseKey) () string { returnprettyStringStruct() }func ( *CertResponse) () string { returnprettyStringStruct() }func ( *IssuerResponse) () string { returnprettyStringStruct() }func ( *ResourcePermission) () string { returnprettyStringStruct() }func ( *PermissionResource) () string { returnprettyStringStruct() }func ( *PermissionScope) () string { returnprettyStringStruct() }func ( *IntroSpectTokenResult) () string { returnprettyStringStruct() }func ( *User) () string { returnprettyStringStruct() }func ( *SetPasswordRequest) () string { returnprettyStringStruct() }func ( *Component) () string { returnprettyStringStruct() }func ( *KeyStoreConfig) () string { returnprettyStringStruct() }func ( *ActiveKeys) () string { returnprettyStringStruct() }func ( *Key) () string { returnprettyStringStruct() }func ( *Attributes) () string { returnprettyStringStruct() }func ( *Access) () string { returnprettyStringStruct() }func ( *UserGroup) () string { returnprettyStringStruct() }func ( *GetUsersParams) () string { returnprettyStringStruct() }func ( *GetComponentsParams) () string { returnprettyStringStruct() }func ( *ExecuteActionsEmail) () string { returnprettyStringStruct() }func ( *Group) () string { returnprettyStringStruct() }func ( *GroupsCount) () string { returnprettyStringStruct() }func ( *GetGroupsParams) () string { returnprettyStringStruct() }func ( *CompositesRepresentation) () string { returnprettyStringStruct() }func ( *Role) () string { returnprettyStringStruct() }func ( *GetRoleParams) () string { returnprettyStringStruct() }func ( *ClientMappingsRepresentation) () string { returnprettyStringStruct() }func ( *MappingsRepresentation) () string { returnprettyStringStruct() }func ( *ClientScope) () string { returnprettyStringStruct() }func ( *ClientScopeAttributes) () string { returnprettyStringStruct() }func ( *ProtocolMappers) () string { returnprettyStringStruct() }func ( *ProtocolMappersConfig) () string { returnprettyStringStruct() }func ( *Client) () string { returnprettyStringStruct() }func ( *ResourceServerRepresentation) () string { returnprettyStringStruct() }func ( *RoleDefinition) () string { returnprettyStringStruct() }func ( *PolicyRepresentation) () string { returnprettyStringStruct() }func ( *RolePolicyRepresentation) () string { returnprettyStringStruct() }func ( *JSPolicyRepresentation) () string { returnprettyStringStruct() }func ( *ClientPolicyRepresentation) () string { returnprettyStringStruct() }func ( *TimePolicyRepresentation) () string { returnprettyStringStruct() }func ( *UserPolicyRepresentation) () string { returnprettyStringStruct() }func ( *AggregatedPolicyRepresentation) () string { returnprettyStringStruct() }func ( *GroupPolicyRepresentation) () string { returnprettyStringStruct() }func ( *GroupDefinition) () string { returnprettyStringStruct() }func ( *ResourceRepresentation) () string { returnprettyStringStruct() }func ( *ResourceOwnerRepresentation) () string { returnprettyStringStruct() }func ( *ScopeRepresentation) () string { returnprettyStringStruct() }func ( *ProtocolMapperRepresentation) () string { returnprettyStringStruct() }func ( *GetClientsParams) () string { returnprettyStringStruct() }func ( *UserInfoAddress) () string { returnprettyStringStruct() }func ( *UserInfo) () string { returnprettyStringStruct() }func ( *RolesRepresentation) () string { returnprettyStringStruct() }func ( *RealmRepresentation) () string { returnprettyStringStruct() }func ( *MultiValuedHashMap) () string { returnprettyStringStruct() }func ( *TokenOptions) () string { returnprettyStringStruct() }func ( *RequestingPartyTokenOptions) () string { returnprettyStringStruct() }func ( *RequestingPartyPermission) () string { returnprettyStringStruct() }func ( *UserSessionRepresentation) () string { returnprettyStringStruct() }func ( *SystemInfoRepresentation) () string { returnprettyStringStruct() }func ( *MemoryInfoRepresentation) () string { returnprettyStringStruct() }func ( *ServerInfoRepresentation) () string { returnprettyStringStruct() }func ( *FederatedIdentityRepresentation) () string { returnprettyStringStruct() }func ( *IdentityProviderRepresentation) () string { returnprettyStringStruct() }func ( *GetResourceParams) () string { returnprettyStringStruct() }func ( *GetScopeParams) () string { returnprettyStringStruct() }func ( *GetPolicyParams) () string { returnprettyStringStruct() }func ( *GetPermissionParams) () string { returnprettyStringStruct() }func ( *GetUsersByRoleParams) () string { returnprettyStringStruct() }func ( *PermissionRepresentation) () string { returnprettyStringStruct() }func ( *CreatePermissionTicketParams) () string { returnprettyStringStruct() }func ( *PermissionTicketDescriptionRepresentation) () string { returnprettyStringStruct() }func ( *AccessRepresentation) () string { returnprettyStringStruct() }func ( *PermissionTicketResponseRepresentation) () string { returnprettyStringStruct() }func ( *PermissionTicketRepresentation) () string { returnprettyStringStruct() }func ( *PermissionTicketPermissionRepresentation) () string { returnprettyStringStruct() }func ( *PermissionGrantParams) () string { returnprettyStringStruct() }func ( *PermissionGrantResponseRepresentation) () string { returnprettyStringStruct() }func ( *GetUserPermissionParams) () string { returnprettyStringStruct() }func ( *ResourcePolicyRepresentation) () string { returnprettyStringStruct() }func ( *GetResourcePoliciesParams) () string { returnprettyStringStruct() }func ( *CredentialRepresentation) () string { returnprettyStringStruct() }func ( *RequiredActionProviderRepresentation) () string { returnprettyStringStruct() }func ( *BruteForceStatus) () string { returnprettyStringStruct() }func ( *GetClientUserSessionsParams) () string { returnprettyStringStruct() }
The pages are generated with Goldsv0.6.7. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds.